Remote management of virtual machines hosted in a private network

ABSTRACT

Management of virtual machines within a private network may be provided from a server application, such as a web application, on a machine remote from a private network. The server application receives management commands and communications the management commands in a vendor independent format to a client application within the private network. The client application receives the management commands, instantiates the management commands into a vendor specific definition and redirects the management commands to the virtual machine host for appropriate execution.

CROSS-REFERENCE TO RELATED APPLICATION

The instant application is a continuation of and claims priority frompatent application Ser. No. 12/469,171, filed May 20, 2009, entitledREMOTE MANAGEMENT OF VIRTUAL MACHINES HOSTED IN A PRIVATE NETWORK, theentire contents of which are incorporated by reference herein.

FIELD OF THE INVENTION

This invention relates to virtual machines existing on a private networkand to the remote management of the network via a virtual network host.

BACKGROUND OF THE INVENTION

Virtual machines are configured on virtual machine hosts, of whichMicrosoft Virtual Server, VMWare Server, VMWare ESX Server, arecommercially available examples. Typically, the virtual machine host isprotected within a private network by a firewall which prevents externalcommunications from remote machines outside of the network. It istherefore difficult to remotely manage the private network from outsideof the network.

What is required is a system, method and computer readable medium forremotely managing virtual machines within a private network.

SUMMARY OF THE INVENTION

In one aspect of the disclosure, there is provided a method for managingone or more virtual machines in a private network. The method comprisesgenerating at least one virtual machine management command in a serverapplication, communicating the at least one virtual machine managementcommand from the server application to a client application within theprivate network, redirecting the at least one virtual machine managementcommand from the client application to a virtual machine host of theprivate network, and executing the at least one virtual machinemanagement command in the virtual machine host.

In one aspect of the disclosure, there is provided a system comprising avirtual machine host that resides within a private network, a clientapplication that resides on a machine within the private network, aserver application that resides on a machine remote from the privatenetwork, a communication channel from the server application to theclient application for providing one or more management commands fromthe server application to the client application, and a redirectionchannel for redirecting the one or more management commands from theclient application to the virtual network host.

In one aspect of the disclosure, there is provided a computer-readablemedium comprising computer-executable instructions for execution by aprocessor, that, when executed, cause a processor to provide aninterface on a remote machine to receive one or more virtual machinemanagement commands in a host independent format, receive one or morevirtual machine management commands through the interface, andcommunicate the one or more virtual machine management commands in ahost independent format to a client application within a network.

BRIEF DESCRIPTION OF THE DRAWINGS

Reference will now be made, by way of example only, to specificembodiments and to the accompanying drawings in which:

FIG. 1 illustrates a system for remotely managing virtual machines of aprivate network;

FIG. 2 illustrates a method for remotely managing virtual machines of aprivate network;

FIG. 3 illustrates a processor and memory of a remote machine thatexecutes a server application;

FIG. 4 illustrates an instruction set that may be executed on theprocessor and memory of FIG. 3; and

FIG. 5 illustrates the processor and memory of FIG. 3 in associationwith a processor and memory of a network machine that executes a clientapplication.

DETAILED DESCRIPTION OF THE INVENTION

In FIG. 1, there is shown a system 10 in accordance with an embodimentof the disclosure. In the system 10, a private network 13 includes avirtual machine host 16 such as a vendor specific virtual machineserver, of which Microsoft Virtual Server, VMWare Server, VMWare ESXServer, are commercially available examples. The private network 13 mayinclude any number of additional physical machines (not shown) thatexecute any number of applications. The private network 13 may interactwith a public wide area network 15 such as the internet. Protection ofthe private network may be provided by a firewall 17 as is known.

A server application 12 is provided on a machine remote or external tothe private network 13. The server application may be provided as a webapplication with a suitable interface allowing the user 11 to enternetwork management commands and parameters. A web application may beprovided from a web server (not shown) within the virtual network 13.The term remote as used herein describes that the server application isnot typically configured on a machine within the machines of the privatenetwork 13. A machine on which the server application executes toreceive management commands may be remote to the network by not beingconfigured as a machine of the private network, irrespective of anygeographic location of the remote machine.

Management commands may include reconfiguring virtual machine settings,e.g. drives, memory, hard disk space allocations, etc. Managementcommands may also include reading changed machine settings, updatingpower states (e.g. stopping, starting, suspending), etc. The serverapplication 12 may be configured to receive management commands from theuser 11 in a format independent of any virtual machine host vendor. Inone embodiment, the management commands may be entered via a web basedform, though a person skilled in the art will readily recognize otherways in which these parameters may be entered.

As described above, the virtual machine host 16 is typically providedwith a firewall 17 which prevents direct communication with the virtualmachine host 16 from outside of the network 13. In accordance with anembodiment of the disclosure, the virtual network 13 includes a clientapplication 14 which provides a communication channel 19 between theserver application 12 via the outside network 15 on one end and betweenthe virtual machine host 16 on the other end.

A method for managing one or more virtual machines in the privatenetwork 13 is illustrated in the flowchart 100 of FIG. 2. At step 101, auser provides one or more virtual machine management commands. Themanagement commands are received by the server application andcommunicated to the client application 14 through the network 15 (step102). The client application 14 redirects the management commands to thevirtual machine host 16 (step 103) which then executes the managementcommands accordingly (step 104).

The client application may reside on any machine within the virtualnetwork 13 including the virtual machine host 16 itself. However, theclient application 14 is configured with a communication channel thatallows it to communicate with outside machines through any networkfirewalls 17.

The virtual machine management commands are specified independent of thevirtual machine vendor. Therefore, the user need not be aware of thevirtual machine platform vendor. The management commands arecommunicated in a vendor independent format over the network and areonly transformed into a vendor specific definition at the point ofdirect interaction with the virtual machine host 16. The virtual machinemanagement operations (start, stop, pause, etc.) are agnostic withrespect to the virtual machine host platform. When initiating thesemanagement operations from the remote server, the end-user need not knowor care that a particular virtual machine is hosted by VMware ESX,Microsoft Virtual Server, etc. It is only once the management operationsare executed on the host system by the client, that the genericoperations are translated (by the client) into vendor specificoperations.

The server application 12 downloads the client side management utilitieswhich support an application command line interface and an eventmessaging interface. Utilities are downloaded to their correspondinghosts. The server application 12 will supports different virtualizationplatforms by providing their corresponding set of management utilities.The command and messaging interface allows the server application 12 touse a single engine to manage any virtualization platforms withoutspecialization requirements.

In one specific example, MS Windows virtualization platforms host alight preconfigured virtual machine to provide a minimum executionenvironment for the downloaded utilities. This eliminates therequirement for special platform support development. For example,VMWare ESX server runs on a derived Linux OS. Having a light virtualmachine running MS Windows in ESX servers can eliminate portingrequirements.

Normalizing the features of the server application 12 to the highestcommon denominator across different virtualization platforms willrequire some utilities to encapsulate extra functionalities than others.For example, MS Virtual Server 2005 does not provide extensive snapshotfeatures that VMWare ESX or MS Hyper-V support. ESX & Hyper-V providehistorical snapshots whereas VS2k5 only provides a single time snapshotwhich means there is only one snapshot that can be restored at anytime.To enhance VS2k5 snapshot functionality, the server's VS2k5 utility willprovide a mechanism to save away the VS2k5 snapshots when the snapshotcommand is executed from the server. The utility will create its ownstorage archive in the host machine to put away each snapshot whilecataloging snapshot properties for later retrievals. In another example,VMWare platforms do not provide virtual machine desktop thumbnails ontheir virtualization management platforms. MS tools not only show thevms' desktop thumbnails, but also provide APIs to retrieve them. Theserver web management interface will provide desktop thumbnails for allvirtualization platforms.

In a network having multiple virtual machine hosts 16, the virtualmachine management commands may include a specification of which virtualmachine host a virtual machine is resident on.

The components of the systems 10 may be embodied in hardware, software,firmware or a combination of hardware, software and/or firmware. In ahardware embodiment, the server application 12 may be executed on adevice, such as a computer, etc including a processor 61 operativelyassociated with a memory 62 as shown in FIG. 3. The memory 62 may storeinstructions that are executable on the processor 61. An instruction set200 that may be executed on the processor 61 is depicted in theflowchart of FIG. 3. Specifically, when executed, the instruction set200 allows the processor to provide the server application through aninterface (step 201), which allows the user to enter virtual machinemanagement commands. The management commands are recorded by theprocessor 61 (step 202) and communicated to the client application (step203) in a host independent format.

As shown in FIG. 5, the processor 61 may communicate through a suitablecommunications link 65 with further processors, such as a processor 71of a machine within the network 13 with associated memory 72. Throughthe communications link 65, the processor 61 may provide the virtualmachine management commands. The processor 71 may execute the clientapplication in order to receive the virtual machine management commandsand transform the host independent management commands into a hostspecific definition, thereby allowing the virtual machine host toexecute the management commands for the relevant virtual machine.

Although embodiments of the present invention have been illustrated inthe accompanied drawings and described in the foregoing description, itwill be understood that the invention is not limited to the embodimentsdisclosed, but is capable of numerous rearrangements, modifications, andsubstitutions without departing from the spirit of the invention as setforth and defined by the following claims. For example, the capabilitiesof the invention can be performed fully and/or partially by one or moreof the blocks, modules, processors or memories. Also, these capabilitiesmay be performed in the current manner or in a distributed manner andon, or via, any device able to provide and/or receive information.Further, although depicted in a particular manner, various modules orblocks may be repositioned without departing from the scope of thecurrent invention. Still further, although depicted in a particularmanner, a greater or lesser number of modules and connections can beutilized with the present invention in order to accomplish the presentinvention, to provide additional known features to the presentinvention, and/or to make the present invention more efficient. Also,the information sent between various modules can be sent between themodules via at least one of a data network, the Internet, an InternetProtocol network, a wireless source, and a wired source and viaplurality of protocols.

What is claimed is:
 1. A method, comprising: communicating at least onevirtual machine management command to a client application within aprivate network, wherein the client application is configured with acommunication channel permitting communication with machines external tothe private network through a firewall; redirecting the at least onevirtual machine management command from the client application to avirtual machine host of the private network; and executing the at leastone virtual machine management command in the virtual machine host. 2.The method according to claim 1 wherein the client application providesan entry point into the private network.
 3. The method according toclaim 1 comprising executing the client application from the virtualmachine host.
 4. The method according to claim 1 comprising generatingthe at least one virtual machine management command in a serverapplication, wherein the server application resides in a machine remotefrom the private network.
 5. The method according to claim 4 comprisingconfiguring the client application to provide a communication channelbetween the server application and the client application.
 6. The methodaccording to claim 4 comprising communicating the at least onemanagement command from the server application to the client applicationin a vendor independent configuration.
 7. The method according to claim1 wherein the client application instantiates the at least onemanagement command into a vendor specific virtual machine host format.8. The method according to claim 4 comprising providing the serverapplication as a web application.
 9. A system, comprising: a virtualmachine host that resides within a private network; a client applicationthat resides on a machine within the private network; wherein the clientapplication receives one or more management commands, via acommunication channel from a machine external to the private network,wherein the communication channel permits communication between theclient application that resides on the machine within the privatenetwork and the machine external to the private network through afirewall; and a redirection channel that redirects the one or moremanagement commands from the client application to the virtual machinehost.
 10. The system according to claim 9 wherein the client applicationis executed on a machine within the private network.
 11. The systemaccording to claim 9 wherein the client application is executed on thevirtual machine host.
 12. The system according to claim 9 wherein thecommunication channel comprises a firewall.
 13. The system according toclaim 9 comprising a server application that resides on the machineexternal to the private network, wherein the server application isconfigured to communicate the one or more management commands to theclient application in a vendor independent format.
 14. The systemaccording to claim 12 wherein the client application is configured toinstantiate the one or more management commands into a vendor specificdefinition.
 15. The system according to claim 13 wherein the serverapplication is configured to download one or more client side managementutilities.
 16. The system according to claim 9 wherein the clientapplication supports a pre-configured virtual machine that provides aminimum execution environment.
 17. A non-transitory computer-readablestorage medium comprising computer-executable instructions for executionby a processor, that, when executed, cause a processor to: receive oneor more virtual machine management commands in a host independent formatthrough an interface on a remote machine; and communicate the one ormore virtual machine management commands in a host independent format toa client application within a private network, wherein the clientapplication is configured with a communication channel that permitscommunication with machines external to the private network through afirewall.
 18. The non-transitory computer readable storage mediumaccording to claim 17 comprising instructions that cause the processorto perform at least one of: execute the client application that receivesthe one or more virtual machine management commands and redirect the oneor more virtual machine management commands to a virtual machine host.19. The non-transitory computer readable storage medium according toclaim 18 wherein the client application is configured to perform atleast one of: determine a virtual machine host from the one or morevirtual machine management commands; and convert the one or more virtualmachine management commands into a host dependent format.
 20. Thenon-transitory computer readable storage medium according to claim 18comprising instructions that cause the virtual machine host to executethe one or more virtual machine management commands.